<html><head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>使用命令行编译器</title></head>
<body bgcolor="#EFF1F0" link="#3A3966" vlink="#000000" alink="#000000">
<font face="Verdana, sans-serif" size="2"><p align="center"><b><font size="5">使用命令行编译器</font></b></p>

<p><b>简介</b></p><blockquote>


命令行编译器位于 PureBasic 文件夹的子目录'compilers' 中。将该目录添加在系统的 PATH 环境变量中，就可以方便的访问到此目录中的所有命令。Windows 系统中使用时，每一个命令参数都要前缀 '/' 符号。 

</blockquote>
<p><b>跨平台命令参数</b></p><blockquote>


-h, --help, /?: 显示编译器帮助<br><br>-c, --commented, /COMMENTED: 创建一个可执行文件时创建一个注释的".asm"文件。当需要进行了修改此文件可以重新生成。此选项只适合高级程序员。<br><br>-d, --debugger, /DEBUGGER: 启用调试器支持。<br><br>-pf, --purifier, /PURIFIER: 启用净化器 purifier。调试器需要激活才产生影响。<br><br>-e, --executable, /EXE "filename": 在指定路径位置创建一个独立的可执行文件或DLL文件。在 MacOS X 系统中，它可以通过增加“.app”的可执行文件的名称创建一个应用程序包。以此方式，将自动创建整个目录结构。<br><br>-r, --resident, /RESIDENT "filename": 创建一个指定文件名的常驻文件。<br><br>-l or --linenumbering, /LINENUMBERING: 添加行或文件信息到可执行文件中，这大大的减缓文件的执行速度。这将允许程序通过<a href="../onerror/index.html">OnError 库</a>生成文件和行号错误报告。<br><br>-q, --quiet, /QUIET: 取消所有不必要的文本输出，这在使用其他编辑器编译时非常有用。<br><br>-sb, --standby, /STANDBY: 加载编译器到内存中，并等待外部命令(编辑器、脚本...)。有关使用此标志的详细信息可查看在 PureBasic 主目录里 'SDK' 目录中的 'CompilerInterface.txt' 。<br><br>-ir, --ignoreresident, /IGNORERESIDENT "filename": 编译器启动时不加载指定的常驻文件。大多时有用，如更新的常驻文件已经存在，所以不用再加载时。<br><br>-o, --constant, /CONSTANT name=value: 用给定的表达式创建指定的常数。例如： 'pbcompiler test.pb /CONSTANT MyConstant=10'。在编译此程序前将常量 <font color="#924B72">#MyConstant</font> 的值设定为10。<br><br>-u, --unicode, /UNICODE: 在字串管理中，使用Unicode格式而非Ascii格式。<br><br>-t, --thread, /THREAD: 对字串和一般的例程使用线程安全运行模式。<br><br>-s, --subsystem, /SUBSYSTEM "name": 使用指定子系统替换一组内部函数。更多详情请查看 <a href="subsystems.html">subsystems</a>。<br><br>-k, --check, /CHECK: checks the syntax only, doesn't create or launch the executable. <br><br>-pp, --preprocess, /PREPROCESS "filename": 预处理源代码并将结果以指定文件名输出。处理后的文件是具所有的宏、编译器指令等的单个文件。这更容易解析一个purebasic 的源文件，因为所有的扩展，都集中在一个文件中。默认情况下是没有注释的, 但参数 '--commented' 可以用于所有未被修改的原始代码作为注释，并允许注释处理。预处理的文件可以重新编译为任何其他的PureBasic源文件，用以创建最终的可执行文件。<br><br>-g, --language, /LANGUAGE \"language\": 为编译器错误消息使用指定语言。<br><br>-v, --version, /VERSION: 显示编译器版本。<br><br><b>例子:</b> 

<pre><font face="Courier New, Courier, mono"size="2">  CLI&gt; pbcompiler sourcecode.pb
</font></pre>

编译器将源代码编译并执行它。 <br>
<br>

<pre><font face="Courier New, Courier, mono"size="2">  CLI&gt; pbcompiler sourcecode.pb --debugger
</font></pre>

编译器将源代码编译和执行时使用调试器。 
<br>
<br>

</blockquote>
<p><b>Windows 指定命令参数</b></p><blockquote>


/ICON "IconName.ico" : 为可执行文件添加指定图标。<br><br>/CONSOLE: 以 <a href="../console/index.html">控制台 Console</a> 格式输出文件。默认格式为 Win32。<br><br>/DLL: 输出文件是一个 <a href="dll.html">动态库 DLL</a>文件。<br><br>/XP: 为可执行文件添加 Windows XP 主题支持。<br><br>/REASM: 重建 PureBasic.asm 文件为可执行文件。它允许使用 /COMMENTED 函数，修改 ASM 输出并重新创建可执行文件。<br><br>/MMX, /3DNOW, /SSE or /SSE2: 创建一个指定 CPU 类型的可执行文件。这意味着该可执行文件可用于执行某种处理器的特定例程。因此，该可执行文件将仅在用这样 CPU 的计算机上正确运行。<br><br>/DYNAMICCPU: 创建一个支持所有CPU类型的可执行程序。当程序启动时，它会查找处理器的类型，然后选择相对合适的方式运行例程。这会使程序体积更大一些，但生成的程序更快。<br><br>/RESOURCE "Filename": 添加一个 Windows资源文件（.rc）到程序或动态库 dll 文件中。资源文件不可以是一个已经编译的，但可以是一个包含指令的Ascii文件。也可以指定只有一个资源，如果需要此文件也可以包含其他资源脚本。<br><br>/LINKER "ResponseFile": 指定一个文件，其中包含要传递直接给链接器的命令。在 Windows 系统中，PureBasic 使用 PellesC 链接器 （polink），可以在相关的文档中找到详细信息。<br><br><br>下列两个编译选项需要在 Microsoft Vista 及高级版本 (Windows 7/8/10)。他们是为列入高版本清单，所以它们在较旧版本的 windows 上将被忽略。没有这些参数选项，exe 将作为普通用户运行，但是虚拟化是打开的 （即注册表和文件重定向）。建议使用 /USER 选项来关闭虚拟化的所有程序的遵守的标准用户权限，因为它仅适用于旧版本的程序的兼容性。这些选项也可在开发环境中的 <a href="ide_compiler.html">IDE 编译器选项</a>中设置。<br><br>/ADMINISTRATOR: 将导致程序执行时要求管理员权限。否则程序将无法运行。需要此选项。注意: 你也可以使用此选项<a href="ide_debugger.html">调试 debug</a> 程序,但只与独立的Gui调试器运行。(因为它必须在 elevated 模式下运行)<br><br>/USER: 程序将以USER 用户身份启动。Exe 文件虚拟化，处于关闭状态。<br><br><b>例子:</b> 

<pre><font face="Courier New, Courier, mono"size="2">  CLI&gt; pbcompiler "C:\Project\Source\DLLSource.pb" /EXE "C:\Project\project.dll" /DLL
</font></pre>

编译器将编译的源代码 （完整路径） 并在给定的目录中创建的 "project.dll"。
 
<br>
<br>

</blockquote>
<p><b>Linux 的具体命令选项</b></p><blockquote>


-so or --sharedobject "filename": 创建一个动态库（共享对象）。<br><br>-mmx, -3dnow, -sse or -sse2: 创建指定处理器的可执行文件这意味着该可执行文件可用于执行某种处理器的特定例程。因此，该可执行文件将仅在用这样 CPU 的计算机上正确运行。<br><br>-dc or --dynamiccpu: 创建一个支持所有CPU类型的可执行程序。当程序启动时，它会查找处理器的类型，然后选择相对合适的方式运行例程。这会使程序体积更大一些，但生成的程序更快。<br>
<br>

</blockquote>
<p><b>OS X 编译命令选项</b></p><blockquote>


-n or --icon "filename.icns" : 给可执行文件添加指定图标。<br><br>-dl or --dylib "filename": 创建一个动态库（dylib对象）。<br><br>-f or --front: 把启动过程放在前面。<br><br>-ibp or --ignorebundlepath: 不用捆绑路径作为当前目录。<br>
<br>


</body></html>